OpenFlight Geometry Import Converter

This geometry import converter reads in Multigen OpenFlight .flt binary format files. The converter extracts and converts the OpenFlight data to equivalent NuGraf or PolyTrans internal data representations.

What is OpenFlight?

OpenFlight is an industry standard realtime 3D scene description format developed, owned and maintained by MultiGen, Inc. It was originally developed by MultiGen in response to a need for database transportability within the visual simulation community.

OpenFlight is the most widely used file format for visual simulation databases and is supported by dozens of vendors of realtime 3D tools. Military visual simulation includes battle simulation, fighter jet flight simulation, tank simulation.  Visual simulation also includes geospecific terrain for accurate realtime fly through of regions of the planet.

In visual simulation, OpenFlight is the defacto standard format. MultiGens OpenFlight databases run on multiple systems including Silicon Graphics, Evans & Sutherland, CAE, FlightSafety, REAL 3D, Sony, Nintendo, Sega, Macintosh, PCs and other popular realtime 3D platforms.

OpenFlight is also becoming prevalent in the PC animation and modeling communities for optimizing and tagging 3d data for realtime playback. As application examples, in the visual simulation industry OpenFlight  is the format for entire worlds.  In the entertainment industry it is widely used for level building in realtime games and in the AES or urban simulation industries it is used to organize and optimize scenes for realtime walkthroughs.

If the content is targeted for realtime playback, then OpenFlight, and the tools that edit OpenFlight format,  provide the highest degree of control over the database organization and the ability to attach data attributes to elements of the model. Most other 3D file formats are good at storing state or cinematic information whereas OpenFlight focuses on reducing the source to screen latency to improve the overall realtime 3D experience. This is achieved by structuring the database as a scene graph of hierarchical beads. Objects can be tagged with such various attributes as Level of Detail which allow the scene graph to be culled according to distance and other aspects of the playback environment.

The OpenFlight specification can be viewed at:

http://www.multigen.com/support/documentation/documentation.htm

Modification requests to the OpenFlight file format can be submitted to MultiGen who will make the determination if the request will be added to the specification.

Benefits of the OpenFlight Converters in PolyTrans

In the 80s and early 90s there was little concern or need for data inter-operability or data inter-connectivity amongst competing programs, or to that matter, between differing industries. This has all changed in the late 90s where software users have come to expect clean and seamless data translation between all of their application programs. In the world of 3D computer graphics there abounds many different and non-compatible file formats, with no single standardized file format for data interchange.

Through the use of Okinos PolyTrans users of many different 3D software packages, or of completely non-related industries, can transform one form of 3D data to another without significant loss of content or detail. With the new OpenFlight converters for PolyTrans,  a multi-point connection now exists between the Visual Simulation, Gaming, MultiMedia, CAD/CAM, AES, Entertainment and Animation markets where inconnectivity was previously limited or non-existent. Significant file conversions for OpenFlight users include 3D Studio MAX, SoftImage, Lightwave, IGES/SAT/STL/SLP/DXF (for CAD data) and others.

IMPORTANT::

You must add a directory path to the location on your hard disk where the MultiGen texture map images are stored. This directory path can be specified by the Preferences/Configure File Search Paths menu option located within the main program. Add the new directory path within the Texture Bitmaps Search Path. If you do not set up this path properly then the NuGraf renderer will not be able to find the texture images referenced by the .flt files. Also, export filters that must reference these bitmap files will not be able to locate them either.

Texture Mapping Differences

It is important to note that because of differences between the method of texture mapping used in MultiGen products and that used in the internal NuGraf/PolyTrans representation that there might be slight differences in the coloration of texture mapped objects:

•	Firstly, only the modulation type texture maps from the OpenFlight database are compatible with the internal representation.  Texture maps using the blend type in OpenFlight are completely unsupported.  Decal textures will appear similar, with the exception that shading will be done on the object (decalled objects in OpenFlight scenes are not shaded).

•	The best match occurs for OpenFlight databases where textures are either applied to objects with a white material applied (or no material at all), or the texture map is an intensity map used to modulate the intensity of the base material color.

•	Textures that are intensity bitmaps will be imported and set to modulate ambient and diffuse colour intensity within the NuGraf/PolyTrans internal representation.  All other textures will be defined to modulate the ambient and diffuse color of the textured object.

•	Any texture imported that contains an alpha channel will be defined to modulate surface opacity using the alpha channel.

DOF, Switch & Animation Data Not Imported

Degree of freedom, switch  (some switch information can be written to a text file on import  see Output Parsing Information to File debugflt.txt below), and animation information will not be imported.  All geometry will still be imported treating these unsupported nodes as simple group nodes.  Animation is not supported because OpenFlight animation is not true key-frame animation but rather a simplistic sequencing between different objects.  Since all node names are preserved, you will still be able to easily identify all parts of the hierarchy.

Instancing and External References

All instance information is preserved as it is in the OpenFlight database, but external references are ignored.  If you wish to read in the external references, you will have to import the referenced files yourself and place them wherever you wish in the scene hierarchy.

Polygon Sub-Face Limitations

A limitation to keep in mind is that of subfacing.  The internal NuGraf/PolyTrans representation does not support subfacing.  Any polygons in the OpenFlight database that are subfaces will be imported simply as coincident polygons.  This may present a problem if the model is being imported so that it can eventually be rendered.  Many renderers do not handle coincident surfaces very elegantly, producing very spotty areas where the renderer has trouble determining which polygon is visible.

Unsupported OpenFlight Beads

Other information possibly contained in an OpenFlight file that is not supported is any information contained in Continuously Adaptive Terrain (CAT) beads, Light Point beads, Morph Vertices, Binary Separating Planes, Sound beads, Road Segment/Path/Zone beads, Clip Regions, and Text beads.

Textures With Clamping Enabled

Textures that make use of clamping within OpenFlight are not supported.  The texture will still be imported, but will appear as a repeating texture.  This is a result of how the internal format used by NuGraf/PolyTrans and that of OpenFlight each treat texture coordinates outside of the [0,1] range.  If a texture in an OpenFlight file is clamped, then all texture coordinate outside this range cause a smearing of the edges of the texture across the surface.  Texture coordinates outside the [0,1] range within the internal format cause a repeating of the texture.  For example, consider a model of the lower leg of a humanoid model with a texture applied to give the appearance of the top of a boot.  The lower half of the texture bitmap is a red boot, and the upper half is blue for pants.  If the texture is clamped in the OpenFlight model, then the red of the boot will be smeared down the leg below the edge of the boot while the blue of the pants will be smeared upwards along the legs.  The same texture imported into the internal NuGraf format will have a repetition of the top of the boot along the leg instead of appearing only once with the boot and pant colors smeared along the leg.

Dialog Box Options

Strip Off Filepaths From Bitmap References

If this checkbox is check-marked then any bitmap references in the OpenFlight file will have their filepath removed leaving just the filename.

Tag Names of Special Nodes (LOD, DOF, Etc).

If this checkbox is enabled then OpenFlight Level-of-Detail (LOD), Degree-of-Freedom (DOF) and Switch nodes imported into the PolyTrans/NuGraf database will have a special tag appended to their names ((LOD), (DOF) or (Switch)).

Import Textured Objects as 100% Diffuse

If this checkbox is enabled then any object which is texture mapped will have its diffuse shading coefficient set to 100%. This is useful so that all texture mapped objects appear bright. If this option is disabled then the texture mapped object may appear dark.

Report Statistics About the Geometry File

If this checkbox is check-marked then parsing statistics will be displayed in the message window after the OpenFlight file has been imported.

Output Parsing Information to File debugflt.txt

If this checkbox is check-marked then the contents of the OpenFlight binary file will be verbosely described and output to the file debugflt.txt.  In particular, this file will contain information regarding Level of Detail switching distances as well as Switch node flags.

Selective Loading

The following checkboxes allow all or only some parts of the OpenFlight file to be loaded:

Polygon Mesh

If checkmarked, then load in the polygonal mesh.

Lights

If checkmarked, then load in the light definitions.

Materials

If checkmarked, then load in all of the material definitions.

2D Material Textures

If checkmarked, then all references to bitmaps for use as textures will be loaded.